深度学习的线性代数基础
简介
线性代数对于计算机科学家而言有点,有点陌生,因为它是连续的区别于离散量. 线性代数是几何和泛函分析的核心.也是理解机器学习的很关键的前提,尤其是如果你是要编写深度学习的算法. 在机器学习入门时,不需要了解线性代数,但是在某些地方有了线性代数的基础,可以增加理解不同算法差异的直觉. 这会帮助你更好的决定如何来开发机器学习系统. 所以如果你真的想要在这个领域有所建树,线性代数的掌握是必须的. 在线性代数中,数据由线性方程组表征,线性方程组的形式是矩阵(matrices)和矢量(Vector)
.所以在线性代数中大多数情况下,我们在处理矩阵和矢量,而不是标量(scalar).如果拥有了类似 Nupmy一样的软件包,可以很容易的用几行代码来计算复杂的矩阵乘法.
数学对象
标量(Scalar)
标量是简单的数字,例如 23
矢量(Vector)
矢量是一组有序的数组,可以是行(row),也可以是列(column).一个矢量只有一个缩影,例如 V2指向矢量内的第二个值,在上图中指的的是-8.
矩阵(Matrix)
矩阵是数字的二维数组. 它有两个索引,第一个指向 row,第二个指向 column.例如, M23指向第二行,第三列的值. 是”8”.矩阵可以有多行多列. Vector 也是一个Matrix,只不过只有一行或者一列.
张量(Tensor)
Tensor 是一个数字数组, 以规则的网格来排布,拥有一个可变的轴.Tensor有三个轴,第一个指向行,第二个指向列,第三个指向轴.例如, V232指向第二行,第三列,第二个轴上的值.在下图中指向0
Tensor 是最重要的术语,因为 Tensor是一个多维数组,根据 indices 的不同,可以是一个 vector或者一个matrix,.例如一阶 tensor 就是一个 Vector(1索引),二阶(2索引),三阶(3 索引). 还有高阶索引(超过三阶的).
计算的规则
1.Matrix-Scalar 操作
如果是对一个矩阵执行加减乘除操作,只需要对矩阵的每个元素分别执行操作就可以了.
2.矩阵和矢量的乘法
矩阵和矢量的乘积得到一个与矩阵相同行数的矢量.
看看第二张图的计算步骤
11+35=16
41+05=4
21+15=7
另一个例子
这是操作的 cheatsheet
3.Matrix-Matrix 加法和减法
矩阵的加减法很简单,必须条件是两个举证要有相同的维度,结果也是同样的维度
4.Matrix-Matrix 乘法
其实就是矩阵-矢量的乘法, 把第二个矩阵按列分割为矢量.第一个矩阵分别和矢量做乘法.最后放到一个新的矩阵中.
矩阵乘法的 cheatsheet
矩阵乘法的属性
矩阵乘法某些属性可以让我们在一个矩阵乘法中绑定一些计算. 接下来我们逐个介绍. 先从标量开始, 然后是矩阵. 这样做易于理解.
1.Not Commutative
标量的乘法是满足交换律的,矩阵的乘法不行.意思是,标量的乘法,73等同于37.但是矩阵的乘法 AB 和 BA是不同的.
2.Associative
标量和矩阵都可以用组合律. 标量3(53)等同于(35)3.矩阵一样, A(BC)等同于(A*B)C.
3.Distributive
标量和矩阵都满足分配率的3(5+3)=35+33,A(B+C)=AB+AC
4.Identity Matrix
单位矩阵是一种特殊的矩阵,首先来看看单位是如何定义的. 数字1是一个单位,因为任何数乘与1都是它本身. 因此矩阵乘一个单位也等于自己.
如果一个矩阵乘与单位矩阵,就满足交换律:AI=IA=A
Matrix Inverse(逆) 和 Transpose(转置)
Inverse 和 Transpos 是矩阵的两个特殊的属性
1.Inverse
什么是 Inverse?一个数字乘与它的逆,等于1. 除了0,每个数字都有逆.
并不是每个矩阵都有逆.
为什么需要逆这个计算? 因为我们不能除矩阵.矩阵没有除法的概念,但是我们可以给矩阵乘一个逆,结果和除法是一样的.
2.Transpose(转置)
本质上,转置就是一个矩阵沿着45度轴的一个镜像.获取一个矩阵的转置很容易. 第一个列变为转置矩阵的第一行,第二列变为转置矩阵的第二行.
总结
Resources
Deep Learning (book) — Ian Goodfellow, Joshua Bengio, Aaron Courville
https://machinelearningmastery.com/linear-algebra-machine-learning/
Andrew Ng’s Machine Learning course on Coursera
https://en.wikipedia.org/wiki/Linear_algebra
https://www.mathsisfun.com/algebra/scalar-vector-matrix.html
https://www.quantstart.com/articles/scalars-vectors-matrices-and-tensors-linear-algebra-for-deep-learning-part-1
https://www.aplustopper.com/understanding-scalar-vector-quantities/